=begin
  2_vars.rb
  Utilisation de différents types de variable dans une classe.

  Il existe également des variables globales (débutant par «$»), mais non présentée ici.
  Certain variables globales sont réservées :
    * $_ désigne la dernière chaîne lue par gets
    * $@ désigne le lieu de l'erreur (le cas échéant)
    * $. désigne la dernière ligne lue par l'interpréteur
    * $* désigne les arguments de la ligne de commande
=end

class Chien

  @@nb_instances = 0 # Variable de classe, la valeur est la meme pour toutes les instances de la classe.
  GENRE = "Canis" # Une constante de la classe.
  ESPECE = "lupus"
  SOUS_ESPECE = "familiaris"

  # initialize est le constructeur
  def initialize(nom, race) # nom et race sont des variables locales
    @@nb_instances += 1
    @race = race # Variable d'instance, spécifique à l'objet instancée. Elles ne sont jamais publique.
    @nom = nom
  end

  def presentation
    puts "Voici mon #{@@nb_instances}e chien, c'est un #{GENRE} #{ESPECE} #{SOUS_ESPECE} en latin."
    puts "Il s'appèle " + @nom + " il est de la race " + @race
  end

end

bobby = Chien.new("Bobby", "St-Bernard") # Première instance de Chien
bobby.presentation

rex = Chien.new("Rex", "berger allemand") # Deuxième instance
rex.presentation
